<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button>按钮1</button>
    <button>按钮2</button>
    <script>
        // var btns = document.querySelectorAll('button');
        // for(var i = 0 ;i<btns.length;i++){
        //     btns[i].onclick = function(){
        //         console.log(i);
        //     }
        // }

        // 先在全局上创建了一个i变量 在进行循环的控制
        // for(var i =0;i<3;i++){}
        // console.log(i);
        // // 等价于下面的写法
        // var i =0;
        // for(;i<3;){i++}
        
        // for(let i =0;i<3;i++){

        // }
        // console.log(i)
        // {
        //     let i = 0;
        //     i++;//i =>1
        // }

        // {
        //     let i = 1;
        //     i++;//i=>2
        // }

        // {
        //     let i = 2;
        //     i++;//i=>3
        // }

        var btns = document.querySelectorAll('button');
        for(let i = 0 ;i<btns.length;i++){
            btns[i].onclick = function(){
                console.log(i);
            }
        }
        /*
            等价于
            {
                let i = 0;
                btns[0].onclick = function(){
                    // 当前作用域下没有i变量 继续向上寻找 找到上层i 得到0
                    console.log(i);
                }
                i++; i=>1
            }

            {
                let i = 1;
                btns[1].onclick = function(){
                    console.log(i);
                }
                i++; i=>2
            }

            当使用for循环与let关键字一起的时候 可以理解 在循环体代码中每次系统都创建了一个新的i变量
        */ 
        
    </script>
</body>
</html>